package 作业.生产者与消费者案例;

//    生产者步骤：
//            1，判断桌子上是否有汉堡包
//    如果有就等待，如果没有才生产。
//            2，把汉堡包放在桌子上。
//            3，叫醒等待的消费者开吃。
public class Cooker implements Runnable {
    private Desk desk;
    public Cooker(Desk desk) {
        this.desk = desk;
    }

    @Override
    public void run() {
        while (true) {
            synchronized (desk.getLock()) {
                if (desk.getCount() == 0){
                    break;
                }else {
                    if (desk.isFlag()) {
                        try {
                            desk.getLock().wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    } else {
                        System.out.println("做汉堡");
                        desk.setFlag(true);
                        desk.getLock().notifyAll();
                    }
                }

            }
        }
    }
}
